﻿
//////////////////////////////////////////////////////////////////////PlacingWay/////////////////////////////////////////////////////////////////////
var dataPlacingWay = Ext.create('Ext.data.Store', {
    fields: ['abbr', 'name'],
    data: [
        { "abbr": "NONE", "name": "не учитывать", v: ['OK', 'OA', 'EF', 'PO', 'ZK'] },
        { "abbr": "OK", "name": "Открытый конкурс", v: ['OK'] },
        { "abbr": "OA", "name": "Открытый аукцион", v: ['OA'] },
        { "abbr": "EF", "name": "Открытый аукцион в электронной форме", v: ['EF'] },
        { "abbr": "PO", "name": "Предварительный отбор", v: ['PO'] },
        { "abbr": "ZK", "name": "Запрос котировок", v: ['ZK'] }
        
    ]
});

//////////////////////////////////////////////////////////////////////Amount/////////////////////////////////////////////////////////////////////
Ext.define("maxPriceStore", {
    extend: "Ext.data.Store",
    fields: ['abbr', 'name'],
    data: [
        { "dtID": "0", "name": "не учитывать", v1: -1, v2: 100000000000000},
        { "dtID": "1", "name": "0 - 100 000",v1:0,v2:100000},
        { "dtID": "2", "name": "100 000 - 200 000", v1: 100000, v2:200000},
        { "dtID": "3", "name": "200 000 - 350 000", v1: 200000, v2: 350000},
        { "dtID": "4", "name": "350 000 - 450 000", v1: 350000, v2: 500000 },
        { "dtID": "5", "name": "450 000 - 600 000", v1: 450000, v2: 600000 },
        { "dtID": "6", "name": "600 000 - 750 000", v1: 600000, v2: 750000},
        { "dtID": "7", "name": "750 000 - 900 000", v1: 750000, v2: 900000 },
        { "dtID": "8", "name": "более 900 000", v1: 900000, v2: 50000 }
    ]
});

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Фильтр списка тендеров
Ext.define("Default.panel.notificationFiltr", {
    extend: "Ext.panel.Panel",
    region: 'east',
    title: "Панель управления",
    margins: '0 0 0 0',
    cmargins: '0 0 0 0',
    width: 400,
    collapsible: true,
    minSize: 100,
    minWidth: 300,
    maxSize: 250,
    defaults: {
        collapsible: true,
        split: true,
        bodyStyle: 'padding:15px'
    },

    initComponent: function () {
        itms = [new Default.panel.commonPanel({ id: "commonPanel" + "_" + this.id })];
        Ext.apply(this, { items: itms });
        Default.panel.notificationFiltr.superclass.initComponent.apply(this, arguments);

        this.getValue = function () {
            return Ext.getCmp("commonPanel" + "_" + this.id).getValue();
        }

    }
});

Ext.define("Default.panel.commonPanel", {
    extend: "Ext.panel.Panel",
    collapsible: false,
    border: false,
    layout: {
        type: 'table',
        columns: 1
    },
    initComponent: function () {
        ////////////////////////////////////////////////////диапазон цен///////////////////////
        var cmbPrice = Ext.create('Ext.form.ComboBox', {
            fieldLabel: 'Цена контракта',
           //id: 'cmbMaxPrice_ID',
            store: new maxPriceStore(),
            queryMode: 'local',
            displayField: 'name',
            valueField: 'dtID',
            width: 350,
            listeners: {
                'select': function (v, s) {
                    this.setValue(s[0].raw);
                }
            }
        });
        cmbPrice.getRangeValue = function () { return this.value; };

        ////////////////////////////////////////////////////способ размещения///////////////////////
        var cmbPlacingWay = Ext.create('Ext.form.ComboBox', {
            fieldLabel: 'Способ размещения',
            //id: 'cmbPlacingWay_ID',
            store: dataPlacingWay,
            queryMode: 'local',
            displayField: 'name',
            valueField: 'abbr',
            width: 350,
            listeners: { 'select': function (v, s) { this.setValue(s[0].raw); } }
        });
        cmbPlacingWay.getRangeValue = function () {
            if (this.value)
                return this.value.v;
            return undefined;
        };

        itms = [
            cmbPrice,
            cmbPlacingWay,
            {             
                format: "d.m.Y",
                xtype: 'datefield',
                anchor: '100%',
                fieldLabel: 'Опубл. с',
                name: 'iDtStart',
                width: 350,
                value: new Date()
            },
            {              
                format: "d.m.Y",
                xtype: 'datefield',
                anchor: '100%',
                fieldLabel: 'Опубл. по',
                name: 'iDtEnd',
                width: 350,
                value: new Date()
            },
                new Ext.create('Default.panel.kaldrTree', {}),
                new Ext.create('Default.panel.mnnTree', {})
                
            ];

        //вернуть состояние фильтра в виде набора параметров        
        this.getValue = function () {
            var result = {};            
            //список территорий
            var territoryList = [];
            var tkp = this.items.items[4].value;
            if (tkp) {
                for (var key in tkp) {
                    territoryList.push(key);
                }
            }
            result["territoryList"] = territoryList;
            
            //период
            result["iDtStart"] = this.items.items[2].getValue().valueOf();
            result["iDtEnd"] = this.items.items[3].getValue().valueOf();

            //Price
            var pValue = this.items.items[0].value; ;
            if (pValue) {
                result["iMaxPriceStart"] = pValue.v1;
                result["iMaxPriceEnd"] = pValue.v2;
            }


            //Placing way
            var pwValue = this.items.items[1].value; ;
            if (pwValue)
                result["placingWay"] = pwValue.v;
            else
                result["placingWay"] = [];
            
            return  result
        }

        Ext.apply(this, { items: itms });
        Default.panel.commonPanel.superclass.initComponent.apply(this, arguments);

    }
});




